using System;
using System.Collections.Generic;

namespace StudentManagement
{
    public class StudentManager
    {
        // 使用List<T>泛型集合存储学生信息
        private List<Student> students = new List<Student>();
        
        // 1. 增加一个学生
        public void AddStudent(Student student)
        {
            // 检查学号是否已存在
            if (FindStudentById(student.StudentId) != null)
            {
                Console.WriteLine($"学号 {student.StudentId} 已存在，请使用其他学号。");
                return;
            }
            
            students.Add(student);
            Console.WriteLine($"学生 {student.Name} 添加成功。");
        }
        
        // 2. 修改一个指定学号的学生
        public void UpdateStudent(string studentId, string newName, int newAge)
        {
            Student student = FindStudentById(studentId);
            if (student != null)
            {
                student.Name = newName;
                student.Age = newAge;
                Console.WriteLine($"学号 {studentId} 的学生信息已更新。");
            }
            else
            {
                Console.WriteLine($"未找到学号为 {studentId} 的学生。");
            }
        }
        
        // 3. 删除一个学生
        public void RemoveStudent(string studentId)
        {
            Student student = FindStudentById(studentId);
            if (student != null)
            {
                students.Remove(student);
                Console.WriteLine($"学号 {studentId} 的学生已删除。");
            }
            else
            {
                Console.WriteLine($"未找到学号为 {studentId} 的学生。");
            }
        }
        
        // 4. 查询一个指定学号的学生
        public Student FindStudentById(string studentId)
        {
            foreach (Student student in students)
            {
                if (student.StudentId == studentId)
                {
                    return student;
                }
            }
            return null; // 未找到返回null
        }
        
        // 5. 遍历所有学生
        public void DisplayAllStudents()
        {    
            if (students.Count == 0)
            {
                Console.WriteLine("当前没有学生信息。");
                return;
            }
            
            Console.WriteLine("=== 学生列表 ===");
            foreach (Student student in students)
            {
                Console.WriteLine(student);
            }
            Console.WriteLine("==============");
        }
    }
}